package com.jeesite.modules.ocr.entity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.entity.TreeEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 模板分类Entity
 * @author 姚海陆,长春叭哥
 * @version 2024-07-28
 */
@Table(name="ocr_tempate_category", alias="a", label="模板分类信息", columns={
		@Column(name="tempate_category_code", attrName="tempateCategoryCode", label="编码", isPK=true),
		@Column(name="parent_code", attrName="parent.tempateCategoryCode", label="父级编号", isParentCode=true),
		@Column(includeEntity=TreeEntity.class),
		@Column(name="tempate_category_name", attrName="tempateCategoryName", label="名称", queryType=QueryType.LIKE, isTreeName=true),
		@Column(name="category_tag_names", attrName="categoryTagNames", label="标签名", queryType=QueryType.LIKE),
		@Column(name="description", attrName="description", label="描述"),
		@Column(name="train_data_set", attrName="trainDataSet", label="训练数据集", isInsert=false, isUpdate=false, isQuery=false),
		@Column(name="train_mode_set", attrName="trainModeSet", label="训练模型集", isInsert=false, isUpdate=false, isQuery=false),
		@Column(name="train_prompt_set", attrName="trainPromptSet", label="训练提示词集", isInsert=false, isUpdate=false, isQuery=false),
		@Column(name="train_infer_set", attrName="trainInferSet", label="训练推理集", isInsert=false, isUpdate=false, isQuery=false),
		@Column(name="train_content", attrName="trainContent", label="训练详情", isInsert=true, isUpdate=true, isQuery=true),
		@Column(includeEntity=DataEntity.class),
	}, orderBy="a.tree_sorts, a.tempate_category_code"
)
public class OcrTempateCategory extends TreeEntity<OcrTempateCategory> {
	
	private static final long serialVersionUID = 1L;
	private String tempateCategoryCode;		// 编码
	private String tempateCategoryName;		// 名称
	private String categoryTagNames;		// 标签名
	
	private String categoryLabelTageName;//标签显示名称
	private String description;		// 描述
	private String trainDataSet;		// 训练数据集
	private String trainModeSet;		// 训练模型集
	private String trainPromptSet;		// 训练提示词集
	private String trainInferSet;		// 训练推理集
	private String trainContent;		// 训练详情

	public OcrTempateCategory() {
		this(null);
	}
	
	public OcrTempateCategory(String id){
		super(id);
	}
	
	@Override
	public OcrTempateCategory getParent() {
		return parent;
	}

	@Override
	public void setParent(OcrTempateCategory parent) {
		this.parent = parent;
	}
	
	public String getTempateCategoryCode() {
		return tempateCategoryCode;
	}

	public void setTempateCategoryCode(String tempateCategoryCode) {
		this.tempateCategoryCode = tempateCategoryCode;
	}
	
	@NotBlank(message="名称不能为空")
	@Size(min=0, max=200, message="名称长度不能超过 200 个字符")
	public String getTempateCategoryName() {
		return tempateCategoryName;
	}

	public void setTempateCategoryName(String tempateCategoryName) {
		this.tempateCategoryName = tempateCategoryName;
	}
	
	@NotBlank(message="标签名不能为空")
	@Size(min=0, max=100, message="标签名长度不能超过 100 个字符")
	public String getCategoryTagNames() {
		return categoryTagNames;
	}

	public void setCategoryTagNames(String categoryTagNames) {
		this.categoryTagNames = categoryTagNames;
	}
	
	@Size(min=0, max=500, message="描述长度不能超过 500 个字符")
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
	
	public String getTrainDataSet() {
		return trainDataSet;
	}

	public void setTrainDataSet(String trainDataSet) {
		this.trainDataSet = trainDataSet;
	}
	
	public String getTrainModeSet() {
		return trainModeSet;
	}

	public void setTrainModeSet(String trainModeSet) {
		this.trainModeSet = trainModeSet;
	}
	
	public String getTrainPromptSet() {
		return trainPromptSet;
	}

	public void setTrainPromptSet(String trainPromptSet) {
		this.trainPromptSet = trainPromptSet;
	}
	
	public String getTrainInferSet() {
		return trainInferSet;
	}

	public void setTrainInferSet(String trainInferSet) {
		this.trainInferSet = trainInferSet;
	}
	
	public String getTrainContent() {
		return trainContent;
	}

	public void setTrainContent(String trainContent) {
		this.trainContent = trainContent;
	}

	public String getCategoryLabelTageName() {
		categoryLabelTageName=categoryTagNames;
		return categoryLabelTageName;
	}

	public void setCategoryLabelTageName(String categoryLabelTageName) {
		this.categoryLabelTageName = categoryLabelTageName;
	}
	
	
	
	
}